home *** CD-ROM | disk | FTP | other *** search
/ Champak 123 / (Vol 123) Jan 13 2011.iso / Games / hand_jibe.swf / scripts / frame_3 / DoAction.as
Text File  |  2011-01-13  |  32KB  |  1,188 lines

  1. function getUserInfo(scope, callback)
  2. {
  3.    var _loc1_ = _global;
  4.    var _loc2_ = this;
  5.    var _loc3_ = _root;
  6.    stop();
  7.    lVars = new LoadVars();
  8.    lVars.onLoad = function(success)
  9.    {
  10.       var _loc1_ = _global;
  11.       var _loc2_ = this;
  12.       var _loc3_ = _root;
  13.       _loc1_.userInfoObj = new Object();
  14.       _loc1_.userInfoObj.userName = lVars.user_name;
  15.       _loc3_.mcDebug.dTrace("[getUserInfo]user_name:" + _loc1_.userInfoObj.userName);
  16.       _loc1_.userInfoObj.isLoggedIn = function()
  17.       {
  18.          var _loc1_ = this;
  19.          _root.mcDebug.dTrace("this.userName:" + _loc1_.userName);
  20.          return _loc1_.userName != "Anonymous" and _loc1_.userName != "" and _loc1_.userName != undefined;
  21.       };
  22.       _loc3_.mcDebug.dTrace("logged in ?:" + _loc1_.userInfoObj.isLoggedIn());
  23.       callback.call(scope,1);
  24.    };
  25.    lVars.onLoadError = function()
  26.    {
  27.       trace("error getting user info");
  28.    };
  29.    lVars.sendAndLoad("http://www.pizmogames.com/levelheads/php/get_user_info.php",lVars,"POST");
  30. }
  31. function loadFps(x, y)
  32. {
  33.    var _loc1_ = _root;
  34.    _loc1_.createEmptyMovieClip("mcFps",_loc1_.getNextHighestDepth());
  35.    _loc1_.mcFps.loadMovie(_global.baseUrl + "shared/fps/fps.swf");
  36.    _loc1_.mcFps._x = x;
  37.    _loc1_.mcFps._y = y;
  38. }
  39. function getUserInfo_cb()
  40. {
  41.    _root.play();
  42. }
  43. function dTrace(str)
  44. {
  45.    if(_root.mcDebug == undefined)
  46.    {
  47.       trace(str);
  48.    }
  49.    else
  50.    {
  51.       _root.mcDebug.dTrace(str);
  52.    }
  53. }
  54. function postHighScoreClicked()
  55. {
  56.    if(_root.highScoreData == undefined)
  57.    {
  58.       _root.highScoreData = new Object();
  59.    }
  60.    determineScore();
  61.    loadHighScoreHub();
  62. }
  63. function determineScore()
  64. {
  65.    _root.highScoreData.score = _root.score;
  66. }
  67. function returnToGameFromHighScore()
  68. {
  69.    if(_root.highScoreData != undefined)
  70.    {
  71.       _root.highScoreData = undefined;
  72.    }
  73. }
  74. function viewHighScoresClicked()
  75. {
  76.    _root.highScoreData = undefined;
  77.    loadHighScoreHub();
  78. }
  79. function checkScoreRank(mc)
  80. {
  81.    var _loc1_ = _root;
  82.    url = "http://www.pizmogames.com/php/highscore/check_score_rank.php";
  83.    if(_loc1_.highScoreData == undefined)
  84.    {
  85.       _loc1_.highScoreData = new Object();
  86.    }
  87.    determineScore();
  88.    lVars = new LoadVars();
  89.    lVars.score = _loc1_.highScoreData.score;
  90.    lVars.lower_is_better = "0";
  91.    lVars.time_period = "daily";
  92.    lVars.game_handle = _loc1_.gameInfo.game_handle;
  93.    lVars.onLoad = function(success)
  94.    {
  95.       mcDebug.dTrace("done checking score rank");
  96.       _root.mcDebug.dTraceObject(lVars);
  97.       trace("your rank is:" + lVars.rank);
  98.       rank = Number(lVars.rank);
  99.       suffixArr = ["th","st","nd","rd","th","th","th","th","th","th"];
  100.       suffix = suffixArr[rank % 10];
  101.       if(rank == 12 or rank == 11)
  102.       {
  103.          suffix = "th";
  104.       }
  105.       mc.rankTxt = lVars.rank + suffix;
  106.       mc.play();
  107.    };
  108.    lVars.sendAndLoad(url,lVars,"POST");
  109. }
  110. function loadHighScoreHub()
  111. {
  112.    _root.createEmptyMovieClip("mcHighScoreHub",999997);
  113.    mcHighScoreHub._xscale = 99;
  114.    mcHighScoreHub._yscale = mcHighScoreHub._xscale;
  115.    if(_global.baseUrl.indexOf("file:",0) == -1)
  116.    {
  117.       suffix = "?" + random(999999);
  118.    }
  119.    else
  120.    {
  121.       suffix = "";
  122.    }
  123.    _root.mcHighScoreHub.loadMovie(_global.baseUrl + "shared/highScoreHub/highScoreHub.swf" + suffix);
  124. }
  125. function initGlobals()
  126. {
  127.    xUnit = 36.8;
  128.    yUnit = 36.8;
  129.    gDdoubleClickTime = 300;
  130.    numRows = 10;
  131.    numColumns = 10;
  132.    chipArray = new Array();
  133.    nextZOrder = 100;
  134.    i = 0;
  135.    while(i < numRows)
  136.    {
  137.       chipArray.push(new Array());
  138.       i++;
  139.    }
  140.    straightArrays = new Array();
  141.    stopSignTimeCounterMax = 168;
  142.    stopSignAnimCounter = 0;
  143.    handJibeAnimCounter = 0;
  144.    numMessageAnims = 6;
  145.    secsPerLevel = 59;
  146.    firstWildHandLevel = 3;
  147. }
  148. function initGame()
  149. {
  150.    var chip;
  151.    var i;
  152.    var j;
  153.    score = 0;
  154.    i = numRows - 1;
  155.    while(i >= 0)
  156.    {
  157.       j = 0;
  158.       while(j < numColumns)
  159.       {
  160.          clipName = "mcChip" + i + j;
  161.          if(eval("mcPuzzle.mcChip" + i) == undefined)
  162.          {
  163.             duplicateMovieClip(mcPuzzle.mcChip,clipName,16384 + nextZOrder);
  164.          }
  165.          chip = eval("mcPuzzle.mcChip" + i + j);
  166.          nextZOrder++;
  167.          chipArray[i][j] = chip;
  168.          chip._x = 0 + j * xUnit;
  169.          chip._y = 50 + i * yUnit;
  170.          chip.column = j;
  171.          chip.row = i;
  172.          chip._visible = false;
  173.          chip.num = -1;
  174.          j++;
  175.       }
  176.       i--;
  177.    }
  178.    i = 0;
  179.    while(i < 15)
  180.    {
  181.       clipName = "mcmessage" + i;
  182.       if(eval("mcAllMessages.mcmessage" + i) == undefined)
  183.       {
  184.          duplicateMovieClip(mcAllMessages.mcmessage,clipName,16384 + nextZOrder);
  185.          nextZorder++;
  186.       }
  187.       message = eval("mcPuzzle.mcMessage" + i);
  188.       message.state = "idle";
  189.       i++;
  190.    }
  191.    handJibeFinalX = mcHandJibeAnim._x;
  192.    handJibeFinaly = mcHandJibeAnim._y;
  193.    if(gamePlayedAlready == undefined)
  194.    {
  195.       gamePlayedAlready = true;
  196.    }
  197.    else
  198.    {
  199.       logActivity("play_again");
  200.    }
  201. }
  202. function initLevel()
  203. {
  204.    var chip;
  205.    var _loc2_ = undefined;
  206.    var _loc1_ = undefined;
  207.    _loc2_ = numRows - 1;
  208.    while(_loc2_ >= 0)
  209.    {
  210.       _loc1_ = 0;
  211.       while(_loc1_ < numColumns)
  212.       {
  213.          chipArray[_loc2_][_loc1_].mcButton._visible = true;
  214.          clearChip(chipArray[_loc2_][_loc1_]);
  215.          _loc1_ = _loc1_ + 1;
  216.       }
  217.       _loc2_ = _loc2_ - 1;
  218.    }
  219.    mcStopSigns._visible = false;
  220.    stopSignTimeCounter = 0;
  221.    numRowsDropped = 0;
  222.    if(levelNum > 4)
  223.    {
  224.       _loc2_ = numRows - 1;
  225.       while(_loc2_ >= numRows - 2)
  226.       {
  227.          _loc1_ = 0;
  228.          while(_loc1_ < numColumns)
  229.          {
  230.             setRandomChip(chipArray[_loc2_][_loc1_]);
  231.             _loc1_ = _loc1_ + 1;
  232.          }
  233.          _loc2_ = _loc2_ - 1;
  234.       }
  235.       numRowsDropped = 2;
  236.    }
  237.    colToDropChip = 0;
  238.    whereToGo = "init loop";
  239.    dropDir = 1;
  240.    paused = false;
  241.    timePaused = 0;
  242.    numInitialRows = 1 + Number(levelNum);
  243.    trace("numInitialRows:" + numInitialRows);
  244.    if(numInitialRows > numRows - 2)
  245.    {
  246.       numInitialRows = numRows - 2;
  247.    }
  248.    addChipCounterMax = 75 - levelNum * 12;
  249.    trace("addChipCounterMax:" + addChipCounterMax);
  250.    if(addChipCounterMax < 4)
  251.    {
  252.       addChipCounterMax = 7;
  253.    }
  254.    addChipCounter = addChipCounterMax;
  255.    chipJustClicked = false;
  256.    if(levelnum > 1)
  257.    {
  258.       mcSoundObj.playsound("level start");
  259.    }
  260.    logActivity("level_start_" + levelnum);
  261. }
  262. function stepDropInitialChips()
  263. {
  264.    var _loc2_ = undefined;
  265.    var _loc1_ = undefined;
  266.    var _loc3_ = undefined;
  267.    setRandomChip(chipArray[0][colToDropChip]);
  268.    if(colToDropChip + dropDir < 0 or colToDropChip + dropDir > numColumns)
  269.    {
  270.       numRowsDropped++;
  271.       if(numRowsDropped == numInitialRows)
  272.       {
  273.          whereToGo = "play";
  274.          startTime = getTimer();
  275.          if(levelNum >= firstWildHandLevel)
  276.          {
  277.             _loc2_ = numRows - 1;
  278.             while(_loc2_ >= 0)
  279.             {
  280.                _loc1_ = 0;
  281.                while(_loc1_ < numColumns)
  282.                {
  283.                   if(chipArray[_loc2_][_loc1_].num == 0 and chipArray[_loc2_][_loc1_]._visible)
  284.                   {
  285.                      _loc3_ = chipArray[_loc2_][_loc1_];
  286.                   }
  287.                   _loc1_ = _loc1_ + 1;
  288.                }
  289.                _loc2_ = _loc2_ - 1;
  290.             }
  291.             _loc3_.wildCardFlag = true;
  292.             _loc3_.play();
  293.             trace("made wild card:" + _loc3_.row + "," + _loc3_.column);
  294.          }
  295.       }
  296.       else
  297.       {
  298.          dropDir = - dropDir;
  299.          mcSoundObj.playSound("contact");
  300.       }
  301.    }
  302.    else
  303.    {
  304.       colToDropChip += dropDir;
  305.    }
  306.    moveChipsDown();
  307. }
  308. function setRandomChip(chip)
  309. {
  310.    var _loc1_ = chip;
  311.    var frm;
  312.    if(levelnum >= firstWildHandLevel and random(50) == 1)
  313.    {
  314.       _loc1_.wildCardFlag = true;
  315.    }
  316.    else
  317.    {
  318.       _loc1_.wildCardFlag = false;
  319.       _loc1_.num = random(6);
  320.       setChipToNum(_loc1_,_loc1_.num);
  321.    }
  322.    _loc1_._visible = true;
  323. }
  324. function setChipToNum(chip, num)
  325. {
  326.    var _loc1_ = chip;
  327.    _loc1_.num = num;
  328.    _loc1_.gotoAndStop("h" + _loc1_.num);
  329. }
  330. function updateTimer()
  331. {
  332.    secsElapsed = int((getTimer() - startTime - timePaused) / 1000);
  333.    timer = secsPerLevel - secsElapsed;
  334. }
  335. function step()
  336. {
  337.    var _loc2_ = undefined;
  338.    var _loc1_ = undefined;
  339.    var k;
  340.    var chip;
  341.    var dir;
  342.    if(!paused)
  343.    {
  344.       moveChipsDown();
  345.       if(chipJustClicked)
  346.       {
  347.          checkCloseEmptyColumns(true);
  348.          chipJustClicked = false;
  349.       }
  350.       if(stopSignTimeCounter > 0)
  351.       {
  352.          stopSignTimeCounter--;
  353.          mcStopSigns.secs = int(stopSignTimeCounter / 24);
  354.          if(stopSignTimeCounter == 0)
  355.          {
  356.             mcStopSigns._visible = false;
  357.          }
  358.       }
  359.       else
  360.       {
  361.          if(handJibeAnimCounter == 0)
  362.          {
  363.             addChipCounter--;
  364.          }
  365.          if(addChipcounter == 0)
  366.          {
  367.             numFilled = 0;
  368.             _loc2_ = 1;
  369.             while(_loc2_ < numRows)
  370.             {
  371.                _loc1_ = 0;
  372.                while(_loc1_ < numColumns)
  373.                {
  374.                   if(chipArray[_loc2_][_loc1_]._visible)
  375.                   {
  376.                      numFilled++;
  377.                   }
  378.                   _loc1_ = _loc1_ + 1;
  379.                }
  380.                _loc2_ = _loc2_ + 1;
  381.             }
  382.             filledPercent = numFilled / ((numRows - 1) * numcolumns) * 100;
  383.             if(filledPercent == 100)
  384.             {
  385.                whereToGo = "level lost";
  386.                mcSoundObj.playSound("lose");
  387.                mcSoundObj.music.setVolume(0);
  388.                setRandomChip(chipArray[0][random(numColumns)]);
  389.                logActivity("level_lost_" + levelnum);
  390.             }
  391.             else
  392.             {
  393.                dropNewChip();
  394.             }
  395.          }
  396.          if(stopSignAnimCounter > 0)
  397.          {
  398.             mcStopSigns._x += stopSignDx;
  399.             mcStopSigns._y += stopSignDy;
  400.             stopSignAnimCounter--;
  401.             if(stopSignAnimCounter == 0)
  402.             {
  403.                stopSignTimeCounter = stopSignTimeCounterMax;
  404.                mcStopSigns.play();
  405.                mcStopSigns._x = stopSignFinalX;
  406.                mcStopSigns._y = stopSignFinaly;
  407.             }
  408.          }
  409.          if(handJibeAnimCounter > 0)
  410.          {
  411.             mcHandJibeAnim._x += handJibeDx;
  412.             mcHandJibeAnim._y += handJibeDy;
  413.             handJibeAnimCounter--;
  414.             if(handJibeAnimCounter == 0)
  415.             {
  416.                handJibeTimeCounter = handJibeTimeCounterMax;
  417.                mcHandJibeAnim.play();
  418.                mcHandJibeAnim._x = handJibeFinalX;
  419.                mcHandJibeAnim._y = handJibeFinaly;
  420.             }
  421.          }
  422.       }
  423.       updateTimer();
  424.       if(Number(timer) == 0)
  425.       {
  426.          levelWon();
  427.       }
  428.    }
  429. }
  430. function levelWon()
  431. {
  432.    whereToGo = "level won";
  433.    stopAllSounds();
  434.    levMod3 = levelNum - int(levelnum / 3) * 3 + 1;
  435.    mcSoundObj.playSound("level won " + levMod3);
  436.    mcSoundObj.music.setVolume(0);
  437.    logActivity("level_won_" + levelnum);
  438. }
  439. function dropNewChip()
  440. {
  441.    foundEmptyColumn = false;
  442.    while(!foundEmptyColumn)
  443.    {
  444.       j = random(numColumns);
  445.       if(chipArray[1][j]._visible == false)
  446.       {
  447.          foundEmptyColumn = true;
  448.       }
  449.    }
  450.    i = 0;
  451.    setRandomChip(chipArray[i][j]);
  452.    addChipCounter = addChipCounterMax;
  453.    if(filledPercent < 50)
  454.    {
  455.       addChipCounter = int(addChipCounterMax * 0.6);
  456.    }
  457.    if(filledPercent < 40)
  458.    {
  459.       addChipCounter = int(addChipCounterMax * 0.45);
  460.    }
  461.    if(filledPercent < 30)
  462.    {
  463.       addChipCounter = int(addChipCounterMax * 0.3);
  464.    }
  465.    if(filledPercent < 20)
  466.    {
  467.       if(levelNum > 1)
  468.       {
  469.          addChipCounter = int(addChipCounterMax * 0.1);
  470.       }
  471.    }
  472. }
  473. function chipClicked(chip)
  474. {
  475.    var _loc3_ = chip;
  476.    var _loc1_ = undefined;
  477.    var _loc2_ = undefined;
  478.    resetMessageTypesSetAlready();
  479.    sameColorArray = new Array();
  480.    sameColorArray.push(_loc3_);
  481.    recursivelyCheckForSameColor(_loc3_);
  482.    dir = 1;
  483.    if(chipArray[_loc3_.row - 1][_loc3_.column].num == _loc3_.num + dir)
  484.    {
  485.       straightArrays[0] = new Array(chipArray[_loc3_.row - 1][_loc3_.column]);
  486.       recursivelyCheckForStraight(chipArray[_loc3_.row - 1][_loc3_.column],dir,straightArrays[0]);
  487.    }
  488.    if(chipArray[_loc3_.row + 1][_loc3_.column].num == _loc3_.num + dir)
  489.    {
  490.       straightArrays[1] = new Array(chipArray[_loc3_.row + 1][_loc3_.column]);
  491.       recursivelyCheckForStraight(chipArray[_loc3_.row + 1][_loc3_.column],dir,straightArrays[1]);
  492.    }
  493.    if(chipArray[_loc3_.row][_loc3_.column - 1].num == _loc3_.num + dir)
  494.    {
  495.       straightArrays[2] = new Array(chipArray[_loc3_.row][_loc3_.column - 1]);
  496.       recursivelyCheckForStraight(chipArray[_loc3_.row][_loc3_.column - 1],dir,straightArrays[2]);
  497.    }
  498.    if(chipArray[_loc3_.row][_loc3_.column + 1].num == _loc3_.num + dir)
  499.    {
  500.       straightArrays[3] = new Array(chipArray[_loc3_.row][_loc3_.column + 1]);
  501.       recursivelyCheckForStraight(chipArray[_loc3_.row][_loc3_.column + 1],dir,straightArrays[3]);
  502.    }
  503.    chipsToRemove = new Array();
  504.    if(_loc3_.num == 1)
  505.    {
  506.       bunniesFound = new Array();
  507.       if(chipArray[_loc3_.row - 1][_loc3_.column]._visible and chipArray[_loc3_.row - 1][_loc3_.column].num == 2)
  508.       {
  509.          bunniesFound.push(chipArray[_loc3_.row - 1][_loc3_.column]);
  510.       }
  511.       b = 0;
  512.       while(b < bunniesFound.length)
  513.       {
  514.          rowdir = bunniesFound[b].row - _loc3_.row;
  515.          columndir = bunniesFound[b].column - _loc3_.column;
  516.          _loc1_ = _loc3_.row;
  517.          _loc2_ = _loc3_.column;
  518.          keepgoing = true;
  519.          while(keepgoing)
  520.          {
  521.             removeChip(chipArray[_loc1_][_loc2_]);
  522.             _loc1_ += rowdir;
  523.             _loc2_ += columndir;
  524.             if(_loc1_ >= numrows or _loc1_ < 0 or _loc2_ >= numColumns or _loc2_ < 0)
  525.             {
  526.                keepgoing = false;
  527.             }
  528.          }
  529.          b++;
  530.       }
  531.       if(bunniesFound.length > 0)
  532.       {
  533.          mcSoundObj.playsound("match shoot bunny");
  534.          setMessage(_loc3_,"shoot the bunny");
  535.       }
  536.    }
  537.    checkPairs(_loc3_,chipArray[_loc3_.row - 1][_loc3_.column]);
  538.    checkPairs(_loc3_,chipArray[_loc3_.row + 1][_loc3_.column]);
  539.    checkPairs(_loc3_,chipArray[_loc3_.row][_loc3_.column + 1]);
  540.    checkPairs(_loc3_,chipArray[_loc3_.row][_loc3_.column - 1]);
  541.    if(_loc3_.num == 2 and sameColorArray.length >= 5)
  542.    {
  543.       _loc1_ = 0;
  544.       while(_loc1_ < numRows)
  545.       {
  546.          _loc2_ = 0;
  547.          while(_loc2_ <= numColumns)
  548.          {
  549.             if(chipArray[_loc1_][_loc2_].num == 1)
  550.             {
  551.                removeChip(chipArray[_loc1_][_loc2_]);
  552.             }
  553.             _loc2_ = _loc2_ + 1;
  554.          }
  555.          _loc1_ = _loc1_ + 1;
  556.       }
  557.       setMessage(_loc3_,"peace");
  558.       mcSoundObj.playsound("match peace");
  559.    }
  560.    if(_loc3_.num == 5 and sameColorArray.length >= 5)
  561.    {
  562.       if(stopSignAnimCounter == 0)
  563.       {
  564.          if(stopSignTimeCounter > 0)
  565.          {
  566.             stopSignTimeCounter = stopSignTimeCounterMax;
  567.          }
  568.          else
  569.          {
  570.             stopSignFinalX = mcStopSigns._x;
  571.             stopSignFinaly = mcStopSigns._y;
  572.             stopSignAnimCounter = 20;
  573.             mcStopSigns._y = _ymouse;
  574.             stopSignDx = (stopSignFinalX - mcStopSigns._x) / stopSignAnimCounter;
  575.             stopSignDy = (stopSignFinaly - mcStopSigns._y) / stopSignAnimCounter;
  576.             mcStopSigns._visible = true;
  577.             mcStopSigns.gotoAndStop(1);
  578.             mcSoundObj.playSound("match stop sign");
  579.          }
  580.       }
  581.    }
  582.    if(sameColorArray.length >= 3)
  583.    {
  584.       setMessage(_loc3_,"same",sameColorArray.length);
  585.       _loc1_ = 0;
  586.       while(_loc1_ < sameColorArray.length)
  587.       {
  588.          removeChip(sameColorArray[_loc1_]);
  589.          _loc1_ = _loc1_ + 1;
  590.       }
  591.       mcSoundObj.playSound("match same " + (random(2) + 1));
  592.    }
  593.    if(chipsToRemove.length > 0)
  594.    {
  595.       chipsToRemove.push(_loc3_);
  596.       _loc1_ = 0;
  597.       while(_loc1_ < chipsToRemove.length)
  598.       {
  599.          removeChip(chipsToRemove[_loc1_]);
  600.          _loc1_ = _loc1_ + 1;
  601.       }
  602.    }
  603.    _loc1_ = 0;
  604.    while(_loc1_ < straightArrays.length)
  605.    {
  606.       playStraightSound = false;
  607.       if(straightArrays[_loc1_].length >= 3)
  608.       {
  609.          playStraightSound = true;
  610.          firstNum = straightArrays[_loc1_][0].num;
  611.          _loc2_ = 0;
  612.          while(_loc2_ < straightArrays[_loc1_].length)
  613.          {
  614.             removeChip(straightArrays[_loc1_][_loc2_]);
  615.             _loc2_ = _loc2_ + 1;
  616.          }
  617.          removeChip(_loc3_);
  618.          if(straightArrays[_loc1_].length >= 6)
  619.          {
  620.             handJibeAnimCounter = 20;
  621.             mcHandJibeAnim._y = _ymouse;
  622.             mcHandJibeAnim._x = _xmouse;
  623.             handJibeDx = (handJibeFinalX - mcHandJibeAnim._x) / handJibeAnimCounter;
  624.             handJibeDy = (handJibeFinaly - mcHandJibeAnim._y) / handJibeAnimCounter;
  625.             mcHandJibeAnim._visible = true;
  626.             mcHandJibeAnim.gotoAndStop(1);
  627.             removeAllChips();
  628.             playStraightSound = false;
  629.             mcSoundObj.playSound("match hand jibe");
  630.             logActivity("hand_jibe_found");
  631.          }
  632.          else
  633.          {
  634.             setMessage(_loc3_,"straight",firstNum,firstNum + straightArrays[_loc1_].length - 1);
  635.          }
  636.       }
  637.       straightArrays[_loc1_] = new Array();
  638.       if(playStraightSound)
  639.       {
  640.          mcSoundObj.playSound("match straight");
  641.       }
  642.       _loc1_ = _loc1_ + 1;
  643.    }
  644.    chipJustClicked = true;
  645. }
  646. function handJibeAnimDone()
  647. {
  648.    mcHandJibeAnim._visible = false;
  649. }
  650. function checkCloseEmptyColumns(soundFlag)
  651. {
  652.    var _loc1_ = undefined;
  653.    var _loc2_ = undefined;
  654.    var _loc3_ = undefined;
  655.    playEmptyColumnSound = false;
  656.    _loc3_ = 0;
  657.    while(_loc3_ < int(numColumns / 2 + 1))
  658.    {
  659.       columnEmpty = true;
  660.       _loc1_ = 0;
  661.       while(_loc1_ < numRows)
  662.       {
  663.          if(chipArray[_loc1_][_loc3_]._visible)
  664.          {
  665.             columnEmpty = false;
  666.          }
  667.          _loc1_ = _loc1_ + 1;
  668.       }
  669.       if(columnEmpty)
  670.       {
  671.          allPreviousColumnsEmpty = true;
  672.          _loc2_ = _loc3_;
  673.          while(_loc2_ >= 0)
  674.          {
  675.             _loc1_ = 0;
  676.             while(_loc1_ < numRows)
  677.             {
  678.                copyOneChipToAnother(chipArray[_loc1_][_loc2_ - 1],chipArray[_loc1_][_loc2_]);
  679.                if(chipArray[_loc1_][_loc2_ - 1]._visible)
  680.                {
  681.                   allPreviousColumnsEmpty = false;
  682.                }
  683.                clearChip(chipArray[_loc1_][_loc2_ - 1]);
  684.                _loc1_ = _loc1_ + 1;
  685.             }
  686.             _loc2_ = _loc2_ - 1;
  687.          }
  688.          if(!allPreviousColumnsEmpty)
  689.          {
  690.             playEmptyColumnSound = true;
  691.          }
  692.       }
  693.       columnEmpty = true;
  694.       colToCheck = numColumns - _loc3_ - 1;
  695.       _loc1_ = 0;
  696.       while(_loc1_ < numRows)
  697.       {
  698.          if(chipArray[_loc1_][colToCheck]._visible)
  699.          {
  700.             columnEmpty = false;
  701.          }
  702.          _loc1_ = _loc1_ + 1;
  703.       }
  704.       if(columnEmpty)
  705.       {
  706.          allPreviousColumnsEmpty = true;
  707.          _loc2_ = colToCheck;
  708.          while(_loc2_ < numColumns)
  709.          {
  710.             _loc1_ = 0;
  711.             while(_loc1_ < numRows)
  712.             {
  713.                if(chipArray[_loc1_][_loc2_ + 1]._visible)
  714.                {
  715.                   allPreviousColumnsEmpty = false;
  716.                }
  717.                copyOneChipToAnother(chipArray[_loc1_][_loc2_ + 1],chipArray[_loc1_][_loc2_]);
  718.                clearChip(chipArray[_loc1_][_loc2_ + 1]);
  719.                _loc1_ = _loc1_ + 1;
  720.             }
  721.             _loc2_ = _loc2_ + 1;
  722.          }
  723.          if(!allPreviousColumnsEmpty)
  724.          {
  725.             playEmptyColumnSound = true;
  726.          }
  727.       }
  728.       _loc3_ = _loc3_ + 1;
  729.    }
  730.    if(soundflag and playEmptyColumnSound)
  731.    {
  732.       mcSoundObj.playsound("contract column");
  733.    }
  734. }
  735. function closeColumnIfEmpty(j, dir)
  736. {
  737.    var _loc2_ = j;
  738.    var _loc3_ = dir;
  739.    var _loc1_ = undefined;
  740.    columnEmpty = true;
  741.    _loc1_ = 0;
  742.    while(_loc1_ < numRows)
  743.    {
  744.       if(chipArray[_loc1_][_loc2_]._visible)
  745.       {
  746.          columnEmpty = false;
  747.       }
  748.       _loc1_ = _loc1_ + 1;
  749.    }
  750.    if(columnEmpty)
  751.    {
  752.       _loc1_ = 0;
  753.       while(_loc1_ < numRows)
  754.       {
  755.          copyOneChipToAnother(chipArray[_loc1_][_loc2_ - _loc3_],chipArray[_loc1_][_loc2_]);
  756.          clearChip(chipArray[_loc1_][_loc2_ - _loc3_]);
  757.          _loc1_ = _loc1_ + 1;
  758.       }
  759.    }
  760. }
  761. function checkPairs(chip, chipNear)
  762. {
  763.    var _loc1_ = chipNear;
  764.    var _loc2_ = chip;
  765.    if(_loc1_._visible)
  766.    {
  767.       pairFound = false;
  768.       if(_loc1_.num == 5 and _loc2_.num == 2)
  769.       {
  770.          pairFound = true;
  771.          mcSoundObj.playSound("match scissors");
  772.       }
  773.       if(_loc1_.num == 0 and _loc2_.num == 5)
  774.       {
  775.          pairFound = true;
  776.          mcSoundObj.playSound("match paper");
  777.       }
  778.       if(_loc1_.num == 2 and _loc2_.num == 0)
  779.       {
  780.          pairFound = true;
  781.          mcSoundObj.playSound("match rock");
  782.       }
  783.       if(_loc1_.num == 5 and _loc2_.num == 5)
  784.       {
  785.          if(sameColorArray.length == 2)
  786.          {
  787.             pairFound = true;
  788.             mcSoundObj.playSound("match high five");
  789.          }
  790.       }
  791.       if(pairFound)
  792.       {
  793.          chipsToRemove.push(_loc1_);
  794.          setMessage(_loc2_,"srp",String(_loc2_.num) + String(_loc1_.num));
  795.       }
  796.    }
  797. }
  798. function resetMessageTypesSetAlready()
  799. {
  800.    messageTypesSetAlready = new Array();
  801. }
  802. function setMessage(chip, mtype, param1, param2)
  803. {
  804.    var _loc1_ = mtype;
  805.    var _loc2_ = param1;
  806.    var _loc3_ = chip;
  807.    if(messageTypesSetAlready[_loc1_] == undefined)
  808.    {
  809.       message = findUnusedMessage();
  810.       switch(_loc1_)
  811.       {
  812.          case "srp":
  813.             message.content.gotoAndPlay("srp " + _loc2_);
  814.             break;
  815.          case "straight":
  816.             message.content.gotoAndPlay("straight");
  817.             message.content.firstNum = _loc2_;
  818.             message.content.lastNum = param2;
  819.             trace("passed " + _loc2_ + " ," + param2 + " to straight message");
  820.             break;
  821.          case "same":
  822.             message.content.val = _loc2_;
  823.             message.content.num = _loc3_.num;
  824.             message.content.gotoAndPlay("same");
  825.             break;
  826.          default:
  827.             message.content.gotoAndPlay(_loc1_);
  828.       }
  829.       message._x = _loc3_._x;
  830.       message._y = _loc3_._y - 70;
  831.       message.state = "active";
  832.       if(_loc3_.column > 0.8 * numColumns)
  833.       {
  834.          messageAnimNum = random(numMessageAnims / 2 + 1);
  835.       }
  836.       else
  837.       {
  838.          messageAnimNum = random(numMessageAnims);
  839.       }
  840.       trace("anim num:" + messageAnimNum);
  841.       message.gotoAndPlay("anim " + messageAnimNum);
  842.       messageTypesSetAlready[_loc1_] = true;
  843.    }
  844. }
  845. function findUnusedMessage()
  846. {
  847.    var i;
  848.    var availmessage;
  849.    availMessage = undefined;
  850.    i = 0;
  851.    while(i < 15)
  852.    {
  853.       message = eval("mcAllMessages.mcMessage" + i);
  854.       if(message.state == "idle")
  855.       {
  856.          availMessage = message;
  857.       }
  858.       i++;
  859.    }
  860.    return availMessage;
  861. }
  862. function recursivelyCheckForSameColor(chip, arr)
  863. {
  864.    var _loc1_ = chip;
  865.    if(_loc1_._visible)
  866.    {
  867.       checkAddChipToSameColorArray(_loc1_,chipArray[_loc1_.row - 1][_loc1_.column]);
  868.       checkAddChipToSameColorArray(_loc1_,chipArray[_loc1_.row + 1][_loc1_.column]);
  869.       checkAddChipToSameColorArray(_loc1_,chipArray[_loc1_.row][_loc1_.column + 1]);
  870.       checkAddChipToSameColorArray(_loc1_,chipArray[_loc1_.row][_loc1_.column - 1]);
  871.    }
  872. }
  873. function checkAddChipToSameColorArray(chip, chipNear)
  874. {
  875.    var _loc1_ = chipNear;
  876.    if(_loc1_._visible)
  877.    {
  878.       if(!arrayContainsItem(sameColorArray,_loc1_))
  879.       {
  880.          if(_loc1_.num == chip.num)
  881.          {
  882.             sameColorArray.push(_loc1_);
  883.             recursivelyCheckForSameColor(_loc1_);
  884.          }
  885.       }
  886.    }
  887. }
  888. function recursivelyCheckForStraight(chip, dir, arr)
  889. {
  890.    var _loc1_ = chip;
  891.    var _loc2_ = arr;
  892.    var _loc3_ = dir;
  893.    checkAddChipToStraightArray(_loc1_,chipArray[_loc1_.row - 1][_loc1_.column],_loc3_,_loc2_);
  894.    checkAddChipToStraightArray(_loc1_,chipArray[_loc1_.row + 1][_loc1_.column],_loc3_,_loc2_);
  895.    checkAddChipToStraightArray(_loc1_,chipArray[_loc1_.row][_loc1_.column + 1],_loc3_,_loc2_);
  896.    checkAddChipToStraightArray(_loc1_,chipArray[_loc1_.row][_loc1_.column - 1],_loc3_,_loc2_);
  897. }
  898. function checkAddChipToStraightArray(chip, chipNear, dir, arr)
  899. {
  900.    var _loc1_ = chipNear;
  901.    if(_loc1_._visible)
  902.    {
  903.       if(_loc1_.num == chip.num + dir)
  904.       {
  905.          arr.push(_loc1_);
  906.          recursivelyCheckForStraight(_loc1_,dir,arr);
  907.       }
  908.    }
  909. }
  910. function removeChip(chip)
  911. {
  912.    chip.gotoAndPlay("die" + random(3));
  913.    chip.num = -1;
  914.    score += 10;
  915. }
  916. function clearChip(chip)
  917. {
  918.    chip._visible = false;
  919.    chip.num = -1;
  920. }
  921. function removeAllChips()
  922. {
  923.    var _loc2_ = undefined;
  924.    var _loc1_ = undefined;
  925.    _loc2_ = numRows - 1;
  926.    while(_loc2_ >= 0)
  927.    {
  928.       _loc1_ = 0;
  929.       while(_loc1_ < numColumns)
  930.       {
  931.          removeChip(chipArray[_loc2_][_loc1_]);
  932.          _loc1_ = _loc1_ + 1;
  933.       }
  934.       _loc2_ = _loc2_ - 1;
  935.    }
  936. }
  937. function moveChipsDown()
  938. {
  939.    var _loc1_ = undefined;
  940.    var _loc2_ = undefined;
  941.    var _loc3_ = undefined;
  942.    playContactSound = false;
  943.    _loc1_ = numRows - 2;
  944.    while(_loc1_ >= 0)
  945.    {
  946.       _loc2_ = 0;
  947.       while(_loc2_ < numColumns)
  948.       {
  949.          _loc3_ = chipArray[_loc1_][_loc2_];
  950.          chipBelow = chipArray[_loc1_ + 1][_loc2_];
  951.          if(_loc3_._visible and chipBelow._visible == false)
  952.          {
  953.             copyOneChipToAnother(_loc3_,chipBelow);
  954.             _loc3_._visible = false;
  955.             if(_loc1_ + 1 == numRows - 1)
  956.             {
  957.                checkCloseEmptyColumns(false);
  958.             }
  959.             if(chipArray[_loc1_ + 2][_loc2_]._visible or _loc1_ + 1 == numRows - 1)
  960.             {
  961.                playContactSound = true;
  962.             }
  963.          }
  964.          _loc2_ = _loc2_ + 1;
  965.       }
  966.       _loc1_ = _loc1_ - 1;
  967.    }
  968.    if(playContactSound)
  969.    {
  970.       mcSoundObj.playSound("contact");
  971.    }
  972. }
  973. function copyOneChipToAnother(chipToCopyFrom, chip)
  974. {
  975.    var _loc1_ = chipToCopyFrom;
  976.    var _loc2_ = chip;
  977.    _loc2_.num = _loc1_.num;
  978.    if(_loc1_.wildCardFlag)
  979.    {
  980.       _loc2_.gotoAndPlay(_loc1_._currentframe);
  981.    }
  982.    else
  983.    {
  984.       _loc2_.gotoAndStop(_loc1_._currentframe);
  985.    }
  986.    _loc2_._visible = _loc1_._visible;
  987.    _loc2_.wildCardFlag = _loc1_.wildCardFlag;
  988. }
  989. function pauseClicked()
  990. {
  991.    mcPausedMessage._visible = true;
  992.    _root.mcSoundObj.playSound("click");
  993.    pauseGame();
  994.    logActivity("pause_clicked");
  995. }
  996. function continueClicked()
  997. {
  998.    mcPausedMessage._visible = false;
  999.    _root.mcSoundObj.playSound("click");
  1000.    continueGame();
  1001. }
  1002. function helpClicked()
  1003. {
  1004.    mcHelp._visible = true;
  1005.    mcHelp.gotoAndStop(1);
  1006.    _root.mcSoundObj.playSound("click");
  1007.    pauseGame();
  1008.    logActivity("help_clicked");
  1009. }
  1010. function helpOKclicked()
  1011. {
  1012.    mcHelp._visible = false;
  1013.    _root.mcSoundObj.playSound("click");
  1014.    continueGame();
  1015. }
  1016. function pauseGame()
  1017. {
  1018.    paused = true;
  1019.    if(mcSoundObj.soundon)
  1020.    {
  1021.       soundOnBeforePause = true;
  1022.       _root.mcSoundObj.toggleSound();
  1023.    }
  1024.    else
  1025.    {
  1026.       soundOnBeforePause = false;
  1027.    }
  1028.    pauseStartTime = getTimer();
  1029. }
  1030. function continueGame()
  1031. {
  1032.    paused = false;
  1033.    if(soundOnBeforePause)
  1034.    {
  1035.       _root.mcSoundObj.toggleSound();
  1036.    }
  1037.    timePaused += getTimer() - pauseStartTime;
  1038. }
  1039. function arrayContainsItem(arr, item)
  1040. {
  1041.    var _loc2_ = arr;
  1042.    var _loc3_ = item;
  1043.    var _loc1_ = undefined;
  1044.    contains = false;
  1045.    _loc1_ = 0;
  1046.    while(_loc1_ < _loc2_.length)
  1047.    {
  1048.       if(_loc2_[_loc1_] == _loc3_)
  1049.       {
  1050.          contains = true;
  1051.       }
  1052.       _loc1_ = _loc1_ + 1;
  1053.    }
  1054.    return contains;
  1055. }
  1056. function getTotalMediaLoadedPct()
  1057. {
  1058.    var _loc1_ = _root;
  1059.    bytesTotal = _loc1_.getBytesTotal() + _loc1_.mcSoundObj.getBytesTotal();
  1060.    bytesLoaded = _loc1_.getBytesLoaded() + _loc1_.mcSoundObj.getBytesLoaded();
  1061.    return bytesLoaded / bytesTotal * 100;
  1062. }
  1063. function logActivity(activity)
  1064. {
  1065.    url = "activity_log/" + activity + ".swf";
  1066.    mcLogger.loadMovie(url);
  1067.    trace("logged:" + url);
  1068. }
  1069. function sendToAFriend()
  1070. {
  1071.    getUrl("javascript:sendtofriend()", "");
  1072. }
  1073. function loadTout(mcTout)
  1074. {
  1075.    var _loc2_ = mcTout;
  1076.    var _loc1_ = _global.baseUrl + "games/handjibe/media/tout" + random(3) + ".swf";
  1077.    trace("url:" + _loc1_ + "," + _loc2_);
  1078.    loadMovie(_loc1_,_loc2_);
  1079. }
  1080. MENU = new ContextMenu();
  1081. MENU.hideBuiltInItems();
  1082. Functioned = new ContextMenuItem("Copyright ┬⌐ Pizmo Games",undefined);
  1083. MENU.customItems.push(Functioned);
  1084. _root.menu = MENU;
  1085. urlArr = this._url.split("/");
  1086. _global.baseUrl = "";
  1087. var i = 0;
  1088. while(i < urlArr.length - 3)
  1089. {
  1090.    _global.baseUrl += urlArr[i] + "/";
  1091.    i++;
  1092. }
  1093. trace("_global.baseUrl:" + _global.baseUrl);
  1094. _global.padString = function(str, char, num)
  1095. {
  1096.    var _loc2_ = num;
  1097.    var _loc3_ = char;
  1098.    var _loc1_ = str;
  1099.    while(_loc1_.length < _loc2_)
  1100.    {
  1101.       _loc1_ = _loc3_ + _loc1_;
  1102.    }
  1103.    return _loc1_;
  1104. };
  1105. String.prototype.pluralize = function(num)
  1106. {
  1107.    if(Math.abs(num) > 1)
  1108.    {
  1109.       this += "s";
  1110.    }
  1111. };
  1112. Array.prototype.duplicateArray = function()
  1113. {
  1114.    var _loc3_ = this.length;
  1115.    var _loc2_ = new Array();
  1116.    var _loc1_ = 0;
  1117.    while(_loc1_ < _loc3_)
  1118.    {
  1119.       _loc2_.push(this[_loc1_]);
  1120.       _loc1_ = _loc1_ + 1;
  1121.    }
  1122.    return _loc2_;
  1123. };
  1124. Array.prototype.getPos = function(val)
  1125. {
  1126.    var _loc2_ = this;
  1127.    var _loc3_ = -1;
  1128.    var _loc1_ = undefined;
  1129.    _loc1_ = 0;
  1130.    while(_loc1_ < _loc2_.length)
  1131.    {
  1132.       if(_loc2_[_loc1_] == val)
  1133.       {
  1134.          _loc3_ = _loc1_;
  1135.       }
  1136.       _loc1_ = _loc1_ + 1;
  1137.    }
  1138.    return _loc3_;
  1139. };
  1140. Array.prototype.deleteItem = function(item)
  1141. {
  1142.    var _loc1_ = this.getPos(item);
  1143.    if(_loc1_ != -1)
  1144.    {
  1145.       this.splice(_loc1_,1);
  1146.    }
  1147. };
  1148. _root.createEmptyMovieClip("mcDialogue",_root.getNextHighestDepth());
  1149. dialogueClipLoader = new MovieClipLoader();
  1150. dialogueClipLoader.onLoadError = function()
  1151. {
  1152. };
  1153. dialogueClipLoader.onLoadInit = function()
  1154. {
  1155. };
  1156. url = _global.baseUrl + "shared/interfaceElements/dialogue.swf";
  1157. dialogueClipLoader.loadClip(url,_root.mcDialogue);
  1158. System.security.allowDomain("pizmogames.com");
  1159. showDebugLog = false;
  1160. if(showDebugLog)
  1161. {
  1162.    _root.createEmptyMovieClip("mcDebug",_root.getNextHighestDepth());
  1163.    _root.mcDebug._x = 530;
  1164.    loader = new MovieClipLoader();
  1165.    loader.onLoadInit = function()
  1166.    {
  1167.    };
  1168.    loader.onLoadError = function(s)
  1169.    {
  1170.       trace("error loading :" + s);
  1171.    };
  1172.    loader.loadClip(_global.baseUrl + "shared/debug/debugLog.swf",_root.mcDebug);
  1173. }
  1174. showFps = false;
  1175. if(showFps)
  1176. {
  1177.    loadFps(5,5);
  1178. }
  1179. if(_root.gameInfo == undefined)
  1180. {
  1181.    _root.gameInfo = new Object();
  1182. }
  1183. _root.gameInfo.game_handle = "handjibe";
  1184. _root.gameInfo.scoreDataType = "number";
  1185. _root.gameInfo.game_name_full = "Hand Jibe";
  1186. _root.gameInfo.lower_scores_better = "0";
  1187. _quality = "high";
  1188.